/**
 * Created by Administrator on 14-9-23.
 */
(function ($) {
    $.extend($.fn, {
        Collapse: function(options){
            var $this = $(this), config = {addActive:true, active: 'li', parent: document, speed: 'slow', easing: 'swing', css: 'sea.css'};
            $.seaBase.run(config, options, function(config){
                var activeID = $('.sea-collapse-in', $(config.parent)).attr('id');
                var current=(config.active == 'this')?$('[href=#'+activeID+']'):$('[href=#'+activeID+']').closest(config.active);
                if(config.addActive) current.addClass('active').find('a').addClass('active');
                $this.on('click', function(){
                    var hasActive = (config.active == 'this')?$(this):$(this).closest(config.active);
                    if(!hasActive.hasClass('active')){
                        if($(config.target).is(':hidden')){
                            $('.sea-collapse', $(config.parent)).hide(config.speed, config.easing);
                            $(config.target).show(config.speed, config.easing);
                        }else{
                            $(config.target).hide(config.speed, config.easing);
                        }
                        if(config.addActive) hasActive.addClass('active').find('a').addClass('active');
                        hasActive.siblings().removeClass('active').find('a').removeClass('active');
                    }
                    return false;
                });
            });
        },
        Anchor: function(options){
            var config = {anchorTo: "#anchor-main", navDom: "#navMenu"};
            $(this).on('click', function(){
                var $this = $(this);
                $.seaBase.run(config, options, function(config){
                    $this.closest('li').addClass('active').siblings('li').removeClass('active');
                    $(config.anchorTo).load(config.target, function(){
                        if(config.loadCSS) {
                            require.async(config.loadCSS, function(){
                                $(config.anchorTo).seaLoad();
                            });
                        }else{
                            $(config.anchorTo).seaLoad();
                        }
                        if(config.success) config.success();
                    });
                });
                return false;
            });
        },
        flowMenu: function(options){
            var $this = $(this), config = {
                timeout: 2000,
                closetimer: 0,
                ddmenuitem: 0,
                menuDom: 'ul'
            };
            $.seaBase.run(config, options, function(config){
                $this.coffee({
                    mouseover: {
                        li: function(){
                            $this.find(config.menuDom).hide();
                            $(this).find(config.menuDom).show();
                        }
                    },
                    mouseout: {
                        li: function(){
                            $(this).find(config.menuDom).hide();
                        }
                    }
                });
            });
        }
    });
}(jQuery));